import * as xlsx from 'xlsx'

//* 名称首字母大写
export const titleCase = function(str) {
  return str.charAt(0).toUpperCase() + str.slice(1)
}

//* 数字转字符串
// 个位数：1  星期一、2  星期二、3  星期三、4  星期四、5  星期五
// 十位数：1  8:30~10:05、2  10:25~12:00、3  14:40~16:15、4 16:30~18:05、5  19:30~21:05
export const numToClassTime = function(num) {
  const arr = String(num).split('')
  let week = '', time = ''
  switch (arr[0]) {
    case '1': week = '星期一'; break
    case '2': week = '星期二'; break
    case '3': week = '星期三'; break
    case '4': week = '星期四'; break
    case '5': week = '星期五'; break
  }

  switch (arr[1]) {
    case '1': time = '8:30~10:05'; break
    case '2': time = '10:25~12:00'; break
    case '3': time = '14:40~16:15'; break
    case '4': time = '16:30~18:05'; break
    case '5': time = '19:30~21:05'; break
  }
  return `${week} ${time}`
}

/**
 * * 将 json 数据导出为 excel 文件
 * @param {String} title 文件名
 * @param {Array} data 数据列表
 */
export const exportToExcel = function(title, data) {
  const xlsxObj = {
    SheetNames: ['sheet1'],
    Sheets: {
      ['sheet1']:xlsx.utils.json_to_sheet(data)
    }
  }
  xlsx.writeFile(xlsxObj, `${title}.xlsx`)
}


/**
 * * 处理数据（处理为excel需要的数据格式）
 * @param {*} enNameToCnName 对象中的key，excel 中 name 的映射，例如：{name: '小明'} -> {姓名：'小明'}
 * @param {*} data 原始数据列表
 * @returns 处理好的数据列表
 */
export const processData = (enNameToCnName,data) => {
  let newData = data.map((item) => {
    let newItem = []
    Object.keys(item).forEach((k) => {
      if (enNameToCnName[k]) {
        newItem[enNameToCnName[k]] = item[k]
      }
    })
    return newItem
  })
  return newData
}